package hui.zhang.crm.service;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import hui.zhang.crm.domain.Customer;

/**
 * 客户操作
 */
public interface CustomerService {

	// 查询所有未关联客户列表
	@Path("/noassociationcustomers")
	@GET
	@Produces({ "application/xml", "application/json" })
	public List<Customer> findNoAssociationCustomers();

	// 已经关联到指定定区的客户列表
	@Path("/associationfixedareacustomers/{fixedareaid}")
	@GET
	@Produces({ "application/xml", "application/json" })
	public List<Customer> findHasAssociationFixedAreaCustomers(@PathParam("fixedareaid") String fixedAreaId);

	// 将客户关联到定区上 ， 将所有客户id 拼成字符串 1,2,3
	@Path("/associationcustomerstofixedarea")
	@PUT
	public void associationCustomersToFixedArea(@QueryParam("customerIdStr") String customerIdStr,
			@QueryParam("fixedAreaId") String fixedAreaId);

	// 客户注册
	@POST
	@Path("/customer")
	@Consumes({ "application/xml", "application/json" })
	public void regist(Customer customer);

	// 查找
	@GET
	@Path("/customer/telephone/{tel}")
	@Consumes({ "application/xml", "application/json" })
	@Produces({ "application/xml", "application/json" })
	public Customer find(@PathParam("tel") String tel);

	// 激活
	@PUT
	@Path("/customer/updatetype/{tel}")
	@Consumes({ "application/xml", "application/json" })
	public void active(@PathParam("tel") String tel);

	/**
	 * 登录
	 * 
	 * @param telephone
	 * @param password
	 * @return
	 */
	@GET
	@Path("/customer/login")
	@Consumes({ "application/xml", "application/json" })
	@Produces({ "application/xml", "application/json" })
	public Customer login(@QueryParam("telephone") String telephone, @QueryParam("password") String password);

	// 根据地址查询定区编码
	@GET
	@Path("/customer/findFixedAreaIdByAddress")
	@Consumes({ "application/xml", "application/json" })
	public String findFixedAreaIdByAddress(@QueryParam("address") String address);
}
